package com.example.number1.ui.theme.util;

import android.os.Handler;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import com.example.number1.R;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;

/**
 * 创建一个名为 MessageAdapter 的适配器类，用于将消息显示在 RecyclerView 中。
 */
public class MessageAdapter extends RecyclerView.Adapter<MessageAdapter.MessageViewHolder> {
    private List<Message> messageList = new ArrayList<>();


   // String time;

    public void addMessage(Message message) {

        messageList.add(message);
        //当您对RecyclerView的数据源进行更改时，例如添加、删除或修改数据项，
        // 调用notifyDataSetChanged方法可以告知RecyclerView重新绘制视图以反映最新的数据。这是保持数据与UI同步的重要步骤
      //  notifyItemInserted(messageList.size()-1);
        notifyDataSetChanged();
    }

    // 用于创建 ViewHolder 对象，即每个列表项的视图容器。
    // 这个方法会在 RecyclerView 需要显示新的列表项时调用，通常需要在此方法中创建并返回一个自定义的 ViewHolder
    @NonNull
    @Override
    public MessageViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.item_message, parent, false);
        return new MessageViewHolder(view);
    }

    //用于将数据绑定到 ViewHolder 中的视图上。
    // 通过参数 position 可以获取当前列表项的索引，然后根据索引从数据源获取相应的数据，并将数据填充到 ViewHolder 中的视图控件上。
    @Override
    public void onBindViewHolder(@NonNull MessageViewHolder holder, int position) {
        //根据指针获取一个个的message,即一个个的消息
        Message message = messageList.get(position);
      //  holder.senderTextView.setText(message.getSender());
        holder.senderTextView.setImageResource(R.drawable.oip1);
        holder.contentTextView.setText(message.getContent());
       //  time = getTime();

//        if (message.getTime().equals("")) {
//            holder.timeTextView.setVisibility(View.GONE);
//
//        } else {
//            holder.timeTextView.setText(message.getTime());
//            holder.senderTextView.setVisibility(View.VISIBLE);
//        }
        if (message.getShowdate()==1){
            holder.senderTextView.setVisibility(View.VISIBLE);
            holder.timeTextView.setText(message.getTime());

        }else{
            holder.timeTextView.setVisibility(View.GONE);
        }


    }


    @Override
    public int getItemCount() {
        return messageList.size();
    }

    public static class MessageViewHolder extends RecyclerView.ViewHolder {
        ImageView senderTextView;
        TextView contentTextView,timeTextView;

        public MessageViewHolder(@NonNull View itemView) {
            super(itemView);
            senderTextView = itemView.findViewById(R.id.sender_text_view);
            contentTextView = itemView.findViewById(R.id.content_text_view);
            timeTextView = itemView.findViewById(R.id.time_text);
        }
    }


}
